home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 41 / Amiga Format CD41 (1999-06)(Future Publishing)(GB)[!][issue 1999-07].iso / -seriously_amiga- / cd-rom / acdb / src / libs.e < prev   
Text File  |  1999-04-28  |  1KB  |  60 lines

  1. OPT MODULE,OSVERSION=37
  2. OPT PREPROCESS,REG=5
  3.  
  4.  
  5. MODULE 'dos/dos'
  6.  
  7.  
  8. /*
  9.  *    libs.e
  10.  *    ©1998 by Piotr Gapiïski
  11.  *
  12.  *
  13.  *    [
  14.  *      ['name.library',version,{base},MUSTBE],
  15.  *      ['name.library',version,{base},MUSTBE],
  16.  *      ...
  17.  *      ...
  18.  *    ]
  19.  *
  20.  */
  21.  
  22.  
  23. EXPORT PROC openLibs(libs:PTR TO LONG) HANDLE
  24.   ->- otwiera wszystkie biblioteki zdefiniowane w strukturze libs
  25.   ->- jeûeli jkaô biblioteka nie istnieje, wyôwietlony zostanie komunikat o bîëdzie
  26.   ->-
  27.  
  28.   DEF desc:PTR TO LONG,base
  29.   DEF error[FAULT_MAX]:STRING,x,len
  30.  
  31.   len := ListLen(libs)
  32.   FOR x := 0 TO (len - 1)
  33.     desc := libs[x]
  34.     base := desc[2]
  35.     ^base := OpenLibrary(desc[], desc[1])
  36.     IF (^base = NIL)AND(desc[3]) THEN Raise()   ->- jeûeli biblioteka jest niezbëdna a jej nie ma
  37.   ENDFOR
  38.  
  39.   RETURN TRUE
  40. EXCEPT
  41.   Fault(ERROR_OBJECT_NOT_FOUND, NIL, error, FAULT_MAX)
  42.   WriteF('\s, v\d, \s\n', desc[], desc[1], error)
  43. ENDPROC FALSE
  44.  
  45.  
  46. EXPORT PROC closeLibs(libs:PTR TO LONG)
  47.   ->- zamyka (TYLKO) wczeôniej otwarte biblioteki
  48.   ->-
  49.  
  50.   DEF desc:PTR TO LONG,base,x,len
  51.  
  52.   len := ListLen(libs)
  53.   FOR x :=0 TO (len - 1)
  54.     desc := libs[x]
  55.     base := desc[2]
  56.     IF (^base) THEN CloseLibrary(^base)
  57.     ^base := NIL
  58.   ENDFOR
  59. ENDPROC
  60.